- Author:
- Randall Britten <r.britten@auckland.ac.nz>
- Date:
- 2012-04-26 11:05:17+12:00
- Desc:
- A mathematical representation of the domains and fields in the simple FieldML example.
- Permanent Source URI:
- https://models.cellml.org/w/randall/FieldML-example-simple-mesh/rawfile/19031e02baa1ae03424deb0336c467d24c2049ed/Simple Mesh MathML FieldML.xml
<?xml version="1.0" encoding="UTF-8" ?>
<fieldml>
<!-- An inline data resource listing 8 corner nodes per element. Resources are just raw data.
As per FieldML 0.5, "metadata" describing the indexes is specified later, in this case by "fromParameterStore".-->
<DataResource name="mesh1.nodes.connectivity.resource">
<DataResourceDescription>
<DataResourceString>
1 2 3 4 5 6 7 8
5 6 7 8 9 10 11 12
9 10 11 12 13 14 15 16
13 14 15 16 17 18 19 20
</DataResourceString>
</DataResourceDescription>
<ArrayDataSource name="mesh1.nodes.connectivity.data" location="1" rank="2">
<RawArraySize>
4 8
</RawArraySize>
</ArrayDataSource>
</DataResource>
<!-- inline data resource listing raw values for the 20 nodes * 3 components of the 'coordinates' field. -->
<DataResource name="mesh1.coordinates.resource">
<DataResourceDescription>
<DataResourceString>
0.0 0.0 0.0
1.0 0.0 0.0
0.0 1.0 0.0
1.0 1.0 0.0
0.0 0.0 1.0
1.0 0.0 1.0
0.0 1.0 1.0
1.0 1.0 1.0
0.0 0.0 2.0
1.0 0.0 2.0
0.0 1.0 2.0
1.0 1.0 2.0
0.0 0.0 3.0
1.0 0.0 3.0
0.0 1.0 3.0
1.0 1.0 3.0
0.0 0.0 4.0
1.0 0.0 4.0
0.0 1.0 4.0
1.0 1.0 4.0
</DataResourceString>
</DataResourceDescription>
<ArrayDataSource name="mesh1.coordinates.data" location="1" rank="2">
<RawArraySize>
20 3
</RawArraySize>
</ArrayDataSource>
</DataResource>
<!-- inline data resource listing pressure values for the 20 nodes. -->
<DataResource name="mesh1.pressure.resource">
<DataResourceDescription>
<DataResourceString>
80000.0
100000.0
100000.0
80000.0
100000.0
80000.0
80000.0
100000.0
70000.0
110000.0
100000.0
70000.0
120000.0
80000.0
80000.0
90000.0
90000.0
100000.0
100000.0
90000.0
</DataResourceString>
</DataResourceDescription>
<ArrayDataSource name="mesh1.pressure.data" location="1" rank="1">
<RawArraySize>
20
</RawArraySize>
</ArrayDataSource>
</DataResource>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mtable columnalign='left' linebreak='true'>
<mtr>
<mtd>
<apply>
<apply>
<eq/>
<ci>lib_RC3d</ci>
<apply>
<cartesianproduct/>
<!-- Or could use the MathML equivalent of cartesian power product here. -->
<reals/>
<reals/>
<reals/>
</apply>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>lib_RC3dLabels</ci>
<list>
<bvar>
<ci>x</ci>
</bvar>
<condition>
<apply>
<and/>
<apply>
<geq/>
<ci>x</ci>
<cn>1</cn>
</apply>
<apply>
<leq/>
<ci>x</ci>
<cn>3</cn>
</apply>
<apply>
<in/>
<ci>x</ci>
<naturalnumbers/>
</apply>
</apply>
</condition>
<ci>x</ci>
</list>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>lib_U1</ci>
<interval closure='closed'>
<cn>0</cn>
<cn>1</cn>
</interval>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<apply>
<eq/>
<ci>lib_U2</ci>
<apply>
<cartesianproduct/>
<ci>lib_U1</ci>
<ci>lib_U1</ci>
</apply>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<apply>
<eq/>
<ci>lib_U3</ci>
<apply>
<cartesianproduct/>
<ci>lib_U1</ci>
<ci>lib_U1</ci>
<ci>lib_U1</ci>
</apply>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>mesh1Nodes</ci>
<list>
<bvar>
<ci>x</ci>
</bvar>
<condition>
<apply>
<and/>
<apply>
<geq/>
<ci>x</ci>
<cn>1</cn>
</apply>
<apply>
<leq/>
<ci>x</ci>
<cn>20</cn>
</apply>
<apply>
<in/>
<ci>x</ci>
<naturalnumbers/>
</apply>
</apply>
</condition>
<ci>x</ci>
</list>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>mesh1Elements</ci>
<list>
<bvar>
<ci>x</ci>
</bvar>
<condition>
<apply>
<and/>
<apply>
<geq/>
<ci>x</ci>
<cn>1</cn>
</apply>
<apply>
<leq/>
<ci>x</ci>
<cn>4</cn>
</apply>
<apply>
<in/>
<ci>x</ci>
<naturalnumbers/>
</apply>
</apply>
</condition>
<ci>x</ci>
</list>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>mesh1</ci>
<apply>
<cartesianproduct/>
<ci>mesh1Elements</ci>
<ci>lib_U3</ci>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>lib_phi1</ci>
<lambda>
<bvar>
<ci>x</ci>
</bvar>
<domainofapplication>
<ci>lib_U1</ci>
</domainofapplication>
<apply>
<minus/>
<cn>1</cn>
<ci>x</ci>
</apply>
</lambda>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>lib_phi2</ci>
<lambda>
<bvar>
<ci>x</ci>
</bvar>
<domainofapplication>
<ci>lib_U1</ci>
</domainofapplication>
<ci>x</ci>
</lambda>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>lib_LL1</ci>
<list>
<ci>lib_phi1</ci>
<ci>lib_phi2</ci>
</list>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>lib_LL2</ci>
<apply>
<csymbol cd="fieldml1">functionTensorProduct</csymbol>
<ci>lib_LL1</ci>
<ci>lib_LL1</ci>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>lib_LL3</ci>
<apply>
<csymbol cd="fieldml1">functionTensorProduct</csymbol>
<ci>lib_LL1</ci>
<ci>lib_LL1</ci>
<ci>lib_LL1</ci>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>mesh1NodalConnectivity</ci>
<apply>
<csymbol>fromParameterStore</csymbol>
<ci>mesh1.nodes.connectivity.data</ci>
<list>
<ci>mesh1Elements</ci>
<ci>mesh1Nodes</ci>
</list>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>mesh1NodalPressure</ci>
<apply>
<csymbol cd="fieldml1">fromParameterStore</csymbol>
<ci>mesh1.pressure.resource</ci>
<list>
<ci>mesh1Elements</ci>
</list>
</apply>
</apply>
</mtd>
</mtr>
<!-- In the definition above, we are just using the same interpolation for all elements of the mesh. -->
<mtr>
<mtd>
<apply>
<eq/>
<ci>mesh1NodalGeometricCoordinates</ci>
<apply>
<csymbol cd="fieldml1">fromParameterStore</csymbol>
<ci>mesh1.coordinates.data</ci>
<list>
<ci>mesh1Nodes</ci>
<ci>lib_RC3dLabels</ci>
</list>
</apply>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<apply>
<domain/>
<ci>dofSourceType</ci>
</apply>
<ci>mesh1Nodes</ci>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>mesh1nodalDofsForElement</ci>
<lambda>
<bvar>
<list>
<ci>element</ci>
<ci>dofsSource</ci>
</list>
</bvar>
<domainofapplication>
<apply>
<cartesianproduct/>
<ci>mesh1Elements</ci>
<ci>dofSourceType</ci>
</apply>
</domainofapplication>
<apply>
<selector/>
<ci>dofsSource</ci>
<apply>
<selector/>
<ci>mesh1NodalConnectivity</ci>
<ci>element</ci>
</apply>
</apply>
</lambda>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>fieldTemplate</ci>
<lambda>
<bvar>
<list>
<list>
<ci>element</ci>
<ci>xi</ci>
</list>
<ci>dofSource</ci>
</list>
</bvar>
<domainofapplication>
<apply>
<cartesianproduct/>
<ci>mesh1</ci>
<ci>dofSourceType</ci>
</apply>
</domainofapplication>
<apply>
<scalarproduct/>
<apply>
<ci>mesh1nodalDofsForElement</ci>
<ci>element</ci>
<ci>dofSource</ci>
</apply>
<apply>
<ci>lib_LL3</ci>
<ci>xi</ci>
</apply>
</apply>
</lambda>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>pressure</ci>
<lambda>
<bvar>
<list>
<ci>element</ci>
<ci>xi</ci>
</list>
</bvar>
<domainofapplication>
<ci>mesh1</ci>
</domainofapplication>
<apply>
<ci>fieldTemplate</ci>
<list>
<list>
<ci>element</ci>
<ci>xi</ci>
</list>
<ci>mesh1NodalPressure</ci>
</list>
</apply>
</lambda>
</apply>
</mtd>
</mtr>
<mtr>
<mtd>
<apply>
<eq/>
<ci>geometricCoordinates</ci>
<lambda>
<bvar>
<list>
<ci>element</ci>
<ci>xi</ci>
</list>
</bvar>
<domainofapplication>
<ci>mesh1</ci>
</domainofapplication>
<apply>
<ci>fieldTemplate</ci>
<list>
<list>
<ci>element</ci>
<ci>xi</ci>
</list>
<ci>mesh1NodalGeometricCoordinates</ci>
</list>
</apply>
</lambda>
</apply>
</mtd>
</mtr>
</mtable>
</math>
</fieldml>